﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once

#include "GcmpSnapInterface.h"
#include "IObject.h"

namespace gcmp
{
    class ISnap;

    /// \brief 对捕捉的候选对象进行预处理的接口。
    class GCMP_SNAP_INTERFACE_EXPORT ISnapCandidatesPreprocessor :public IObject
    {
        DEFINE_CAST_DERIVED(gcmp::ISnapCandidatesPreprocessor, gcmp::IObject)

    public:
         /// \brief 预处理方法。
         /// \param values 捕捉的候选对象集合引用。
         /// \return void
        virtual void Process(std::vector<OwnerPtr<ISnap>>& values) = 0;
    };
}

